Skip to content

[chore] CI Actions v4 및 JDK 빌드 버전 정합#133

Merged
mochoping merged 2 commits into
eGovFramework:mainfrom
dasomel-eGovFramework:chore/ci-actions-v4-jdk21-main
Jun 12, 2026
Merged

[chore] CI Actions v4 및 JDK 빌드 버전 정합#133
mochoping merged 2 commits into
eGovFramework:mainfrom
dasomel-eGovFramework:chore/ci-actions-v4-jdk21-main

Conversation

@dasomel

@dasomel dasomel commented Jun 6, 2026

Copy link
Copy Markdown
Contributor

개요

CI 워크플로(maven.yml)의 Actions 버전과 JDK 빌드 환경을 프로젝트 실제 요구사항에 맞게 정합합니다.

변경 내용

항목 변경 전 변경 후
actions/checkout v3 v4
actions/setup-java v3 v4
distribution adopt temurin
java-version 8 21

변경 근거

Actions v3 → v4

GitHub Actions v3 계열은 Node.js 16 런타임을 사용하며, Node.js 16은 2023-09-11 EOL되었습니다.
v4는 Node.js 20 기반으로, GitHub에서 권장하는 최신 안정 버전입니다.

adopt → temurin

AdoptOpenJDK 프로젝트는 Eclipse Adoptium(Temurin)으로 이관 완료되었습니다.
setup-java v4에서 adopt는 레거시 호환 옵션이며, temurin이 후속 공식 배포판입니다.

JDK 8 → 21

프로젝트 MANIFEST.MF 확인 결과:

  • 22개 번들 중 21개Bundle-RequiredExecutionEnvironment: JavaSE-21을 요구
  • 1개(egovframework.dev.imp.codegen.model)만 JavaSE-1.8 요구 (JDK 21은 하위 호환)

기존 CI의 java-version: '8'은 실제 빌드 요구사항(JavaSE-21)과 불일치했으며,
JDK 8 환경에서는 JavaSE-21을 요구하는 번들이 정상 빌드되지 않을 수 있습니다.

검증

  • YAML 문법: python3 yaml.safe_load 통과
  • 기존 빌드 명령(mvn -B package) 및 트리거 조건 변경 없음

dasomel added 2 commits June 6, 2026 13:43
변경 내용:
- actions/checkout v3 → v4 (Node.js 16 EOL 대응)
- actions/setup-java v3 → v4
- JDK 배포판 adopt → temurin (AdoptOpenJDK 프로젝트 종료, Eclipse Temurin 후속)
- java-version 8 → 21

근거:
프로젝트 내 22개 번들 MANIFEST.MF 중 21개가
Bundle-RequiredExecutionEnvironment: JavaSE-21을 명시하고 있으며,
CI의 java-version '8'은 실제 빌드 요구사항과 불일치했음.
(나머지 1개 codegen.model은 JavaSE-1.8이나, JDK 21은 하위 호환)
기존 워크플로는 루트의 pom.xml을 빌드하도록 되어 있으나, 이 저장소는 대부분
Eclipse 플러그인(PDE) 프로젝트로 구성되어 루트에 Maven 빌드가 없어
"POM file pom.xml ... does not exist"로 빌드가 항상 실패했다.

표준 Maven으로 빌드 가능한 유일한 모듈인 egovframework.dev.imp.templates를
빌드하도록 --file 경로와 캐시 의존성 경로를 지정한다.
@dasomel

dasomel commented Jun 11, 2026

Copy link
Copy Markdown
Contributor Author

버전 정합(Actions v4·Temurin·JDK 21) 외에, 워크플로 빌드 단계가 실패하던 원인을 함께 수정했습니다.

기존 mvn -B package --file pom.xml은 저장소 루트의 pom.xml을 빌드하도록 되어 있으나, 이 저장소는 대부분 Eclipse 플러그인(PDE) 프로젝트로 구성되어 루트에 Maven 빌드가 없습니다. 그래서 POM file pom.xml ... does not exist로 빌드가 계속 실패하고 있었습니다(기존 main에서도 동일).

표준 Maven으로 빌드 가능한 유일한 모듈인 egovframework.dev.imp.templates를 빌드하도록 --file 경로와 캐시 의존성 경로를 지정했습니다. 로컬에서 CI와 동일한 명령으로 JDK 21 빌드 성공(BUILD SUCCESS, templates-0.0.1-SNAPSHOT.jar 생성)을 확인했습니다.

PDE 플러그인 전체 빌드(Tycho 도입 등)는 범위가 크므로 본 PR에서는 다루지 않았습니다.

@mochoping

Copy link
Copy Markdown
Contributor

workflow 대상 플러그인 프로젝트

제안해 주신 pom.xml 기반 빌드는 일반 jar 컴파일에 해당합니다. 하지만 말씀해 주신 것과 같이, 본 저장소는 22개 번들 전체가 Eclipse PDE(OSGi) 플러그인 구조로 구성되어 있습니다.

현재 Maven 빌드 가능한 플러그인 프로젝트는 egovframework.dev.imp.templates 하나 뿐이며, 기여자님께서도 이를 인지하여 추가 커밋을 해주신 것을 확인했습니다.

workflow 결과물 배포 여부

PR 코드에 따르면 가상 환경에서 packaging만 할 뿐, 그 결과물을 특정 경로에 배포하는 로직은 보이지 않습니다. 따라서 packaging 성공/실패 여부는 확인할 수 있지만, 그 결과물을 다운로드할 수는 없습니다.

하지만 이 egovframework.dev.imp.templates의 jar 파일을 특정 경로에 배포하더라도 단독으로 활용할 여지는 없습니다. 따라서 해당 프로젝트를 대상으로 하는 workflow는 PR처럼 packaging 성공/실패 여부만 확인하는 과정이면 충분합니다.


전자정부 표준프레임워크에 기여해 주셔서 감사합니다.

@mochoping mochoping merged commit ccc4427 into eGovFramework:main Jun 12, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants